/**
 * 完成请求API的代码，与路由层分离
 *
 * @author bian
 * @createDate 2016.10.1
 */
const request = require("../instances/request")
const pkg = require("../../package.json")
const proxyPort = pkg.proxyPort

// task可以和ctx结合起来，在每一次请求入口处都创建一个
var Task = function (ctx) {
    let self = this
    self.ctx = ctx      // 注入context
}

Task.proxyUrl = `http://localhost:${proxyPort}`
Task.proxyPort = proxyPort
Task.pkg = pkg
Task.request = request

// 对后台请求catch函数
Task.proxyErrorHandler = function(res) {
    if(res.status !== 200 || res.body.error){
        ctx.body = "网络错误，请稍后重试"
        throw new Error("后台错误")
    }
}

// 生成新的请求url
Task.newUrl = function(path,querystring){
    if(querystring){
        path += `?${querystring}`
    }
    return `${Task.proxyUrl}/${path}`
}

module.exports = Task
require("./admin_task.js")
require("./user_task.js")